////---------------------------------------------------------------
///**
// * 在指定的位置插入元素
// * 
// * @param index
// *            要插入的位置
// * @param item
// *            要插入的元素
// */
//Object.defineProperty(Array.prototype, 'insert', {
//	enumerable : false,
//	value : function(index, item) {
//		this.splice(index, 0, item);
//	}
//});

// ---------------------------------------------------------------
/**
 * 删除指定的元素
 * 
 * @param item
 *            要删除的元素
 */
!Array.prototype.remove && Object.defineProperty(Array.prototype, 'remove', {
	enumerable : false,
	value : function(item) {
		var _index = this.indexOf(item);
		if (_index != -1)
			this.splice(_index, 1);
	}
});

// ---------------------------------------------------------------
/**
 * 遍历处理每一个元素
 * 
 * @param func
 *            回调函数
 */
!Array.prototype.each && Object.defineProperty(Array.prototype, 'each', {
	enumerable : false,
	value : function(func, scope) {
		for (var i = 0; i < this.length; i++) {
			func.call(scope, i, this[i])
		}
	}
});

/**
 * 判断当前元素是否存在于数组中
 */
!Array.prototype.includes
		&& Object.defineProperty(Array.prototype, 'includes', {
			enumerable : false,
			value : function(item) {
				return this.indexOf(item) >= 0
			}
		});

/**
 * 判断当前元素是否存在于数组中
 */
!Array.prototype.find && Object.defineProperty(Array.prototype, 'find', {
	enumerable : false,
	value : function(fun) {
		var result

		for (var i = 0; i < this.length; i++) {
			if (!result && fun(this[i])) {
				result = this[i]
			}
		}

		return result
	}
});